package cn.westv.scps.service.sysmsg;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

import cn.westv.scps.domain.SysMessageEntity;
import cn.westv.scps.utils.Page;

/**
 * 系统消息管理
 * @author Administrator
 *
 */
public interface ISysMsgService {
	
	/**
	 * 根据hql条件查询系统消息
	 * @param hql
	 * @param sysMessageEntity
	 * @param params
	 * @return
	 */
	public List<SysMessageEntity> find(String hql, Class<SysMessageEntity> sysMessageEntity, Object[] params);

	/**
	 * 根据系统消息id(sysMessageId)获取系统消息
	 * @param sysMessageEntity
	 * @param id  sysMessageId
	 * @return
	 */
	public SysMessageEntity get(Class<SysMessageEntity> sysMessageEntity, Serializable id);

	/**
	 * 分页查询，将数据封装到一个page分页工具类对象
	 * @param hql
	 * @param page
	 * @param sysMessageEntity
	 * @param params
	 * @return
	 */
	public Page<SysMessageEntity> findPage(String hql, Page<SysMessageEntity> page, Class<SysMessageEntity> sysMessageEntity, Object[] params);

	/**
	 * 增加或修改
	 * @param entity 系统消息实体类
	 */
	public void saveOrUpdate(SysMessageEntity entity);

	/**
	 * 增加
	 * @param entity
	 */
	public void save(SysMessageEntity entity);

	/**
	 * 修改
	 * @param entity
	 */
	public void update(SysMessageEntity entity);

	/**
	 * 批量增加或者修改
	 * @param entitys
	 */
	public void saveOrUpdateAll(Collection<SysMessageEntity> entitys);

	/**
	 * 根据id删除系统消息
	 * @param sysMessageEntity
	 * @param id  sysMessage
	 */
	public void deleteById(Class<SysMessageEntity> sysMessageEntity, Serializable id);

	/**
	 * 批量删除
	 * @param sysMessageEntity
	 * @param ids
	 */
	public void delete(Class<SysMessageEntity> sysMessageEntity, Serializable[] ids);
	/**
	 * 根据code查询
	 * @param code
	 * @return
	 */
	public SysMessageEntity findByCode(String code);

	/**
	 * 根据sql条件查询
	 * @param SQL
	 * @param params
	 * @param sysMessageEntity
	 * @return
	 */
	public List<SysMessageEntity> querySQL(String SQL, Object[] params, Class<SysMessageEntity> sysMessageEntity);
	

}
